/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package beans;

import general.util.EntitiesValidation;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import jpa.controller.DetalheJpaController;
import jpa.entity.Detalhe;

/**
 *
 * @author isaias
 */
@ManagedBean
@ViewScoped
public class DetalheBean {
   
    private String  nameFilterDetalhe;
    private Detalhe detalhe = new Detalhe();
    private Detalhe detalheSelected = new Detalhe();

    /** Creates a new instance of DetalheBean */
    public DetalheBean() {
    }

    public void save(){
       List<String> erros = EntitiesValidation.validateDetalhe(detalhe); 
        if(erros.isEmpty()){
         try {
            new DetalheJpaController().create(detalhe);
                     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
                    "Detalhe criado com sucesso!", null));
                     detalhe = new Detalhe();
         } catch (Exception e) {
            e.printStackTrace();
             FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Erro ao tentar criar detalhe!", null));
         }
        }else{
            for(String e : erros){
                 FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    e, null));
            }
        }
        
        
    }

    public void delete(){
        try {
            new DetalheJpaController().destroy(detalheSelected.getId());
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
                    "Detalhe removido com sucesso!", null));
        } catch (Exception e) {
            e.printStackTrace();
             FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Erro ao tentar remover o detalhe selecionado!", null));
        }
    }

    public List<Detalhe> listDetalhes(){
        return new DetalheJpaController().findDetalheEntitiesByName(nameFilterDetalhe);
    }

    public Detalhe getDetalhe() {
        return detalhe;
    }

    public void setDetalhe(Detalhe detalhe) {
        this.detalhe = detalhe;
    }

    public Detalhe getDetalheSelected() {
        return detalheSelected;
    }

    public void setDetalheSelected(Detalhe detalheSelected) {
        this.detalheSelected = detalheSelected;
    }

    public String getNameFilterDetalhe() {
        return nameFilterDetalhe;
    }

    public void setNameFilterDetalhe(String nameFilterDetalhe) {
        this.nameFilterDetalhe = nameFilterDetalhe;
    }



}
